package main

import (
	"flag"
	"google.golang.org/grpc"
	"log"
	"net"
	_ "order_srv/basic/init"
	order "order_srv/basic/orderproto"
	"order_srv/handler/service"
)

func main() {
	flag.Parse()

	// 创建监听器
	lis, err := net.Listen("tcp", "127.0.0.1:50052")
	if err != nil {
		log.Fatalf("failed to listen: %v", err)
	}

	// 创建gRPC服务器
	s := grpc.NewServer()

	// 注册订单服务（包含接单相关功能）
	orderService := service.Server{}
	order.RegisterOrderServer(s, &orderService)
	
	log.Printf("订单服务gRPC服务器启动在端口: %v", lis.Addr())
	log.Println("已注册的RPC方法:")
	log.Println("  基础订单操作:")
	log.Println("    - CreateOrder: 创建订单")
	log.Println("    - GetOrder: 获取订单")
	log.Println("    - GetOrdersByTenant: 获取租客订单列表")
	log.Println("    - GetOrdersByLandlord: 获取房东订单列表")
	log.Println("    - UpdateOrderStatus: 更新订单状态")
	log.Println("    - CreatePayment: 创建支付记录")
	log.Println("    - ProcessPayment: 处理支付")
	log.Println("    - CreateContract: 创建合同")
	log.Println("    - SignContract: 签署合同")
	log.Println("    - CreateReview: 创建评价")
	log.Println("    - CreateComplaint: 创建投诉")
	log.Println("    - DeleteOrder: 删除订单")
	log.Println("    - GetOrderStatistics: 获取订单统计")
	log.Println("  接单相关操作:")
	log.Println("    - AcceptOrder: 接单操作")
	log.Println("    - RejectOrder: 拒绝订单")
	log.Println("    - GetPendingOrders: 获取待处理订单")
	log.Println("    - AssignOrder: 分配订单")
	log.Println("    - GetOrderAcceptanceStats: 获取接单统计")
	log.Println("    - BatchAcceptOrders: 批量接单")
	log.Println("    - BatchRejectOrders: 批量拒绝订单")
	log.Println("    - GetOrdersByStatus: 按状态获取订单")

	// 启动服务器
	if err := s.Serve(lis); err != nil {
		log.Fatalf("failed to serve: %v", err)
	}
}
